Some manufacturing requires repeated tightening of fasteners. Fastening tools, e.g., a nutrunner, are programmed for repeated tightening of a particular type of fastener. The programmable tools execute a single program for a single type of fastener. If a user desires to use the tool to tighten more than one type of fastener, additional programs can be added to a controller to be selected by the user, or other input device, for each fastener. In this case, an optimal program exists for each fastener, but introduces a possible fault into the production process if the user or input device selects the wrong program for a fastener. In some cases, a compromise program is developed, using characteristics of two different tightening programs in a single program. This results in a program that may be used for two different fasteners, but is not optimal for either fastener. If a compromise program is not possible, the user must switch between two tools, or two programs, to tighten the two different fasteners. Switching tools adds burden to the production process and introduces a possible fault into the production process if the user uses the wrong tool or program for a fastener.